package cn.iocoder.yudao.module.contract.dal.dataobject.invoice;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 发票 DO
 *
 * @author 管理员
 */
@TableName("ct_invoice")
@KeySequence("ct_invoice_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InvoiceDO extends BaseDO {

    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 发票代码
     */
    private String fpdm;
    /**
     * 发票号码
     */
    private String fphm;
    /**
     * 开票日期
     */
    private String kprq;
    /**
     * 发票类型 004增值税专用发票 026增值税电子普通发票 081数电专票 082数电普票
     */
    private String fplx;
    /**
     * 发票状态 0正数、1负数、2空白作废、3正数作废、4负数作废
     */
    private String fpzt;
    /**
     * 不含税金额
     */
    private String hjje;
    /**
     * 含税金额
     */
    private String jshj;
    /**
     * 税额
     */
    private String hjse;
    /**
     * 销售方名称
     */
    private String xfmc;
    /**
     * 购买方名称
     */
    private String gfmc;
    /**
     * 税票ID号
     */
    private String zskpId;
    /**
     * 关联订单ID（发票与订单关联主键）
     */
    private String ddSqkpRecordId;
    /**
     * 订单完结状态
     */
    private String ddwjzt;
    /**
     * 订单类型
     */
    private String auart;
    /**
     * 合同管控类型
     */
    private String zzhtgklx;
    /**
     * 合同管控类型描述
     */
    private String zzhtgklxms;
    /**
     * 运输方式
     */
    private String vsbed;
    /**
     * 运输方式描述
     */
    private String vsbedms;
    /**
     * 红冲状态 0未红冲，1已红冲
     */
    private String hczt;
    /**
     * 原发票号码
     */
    private String yfphm;
    /**
     * 区域名称
     */
    private String salesmethodname;
    /**
     * 雇员名称
     */
    private String qyusername;
    /**
     * 公司编码
     */
    private String companyid;
    /**
     * 组织名称
     */
    private String sellertaxname;
    /**
     * 组织编码
     */
    private String sellertaxid;
    /**
     * 开票月
     */
    private String invoiceMonth;
    /**
     * 所属合同id
     */
    private Long contractId;
    /**
     * 所属合同号
     */
    private String contractNo;
    /**
     * 合同生成日期
     */
    private LocalDateTime contractGeneratedTime;
    /**
     * 状态 -2已关闭  -1无效发票 0未生成 1已生成 2已作废
     */
    private String status;
    /**
     * 发票明细
     */
    private String invoiceMxInfos;
    /**
     * 销售凭证日期
     */
    private LocalDateTime audat;
    /**
     *销售凭证
     */
    private String ddh;
    /**
     *客户编码
     */
    private String clientCode;
    /**
     *客户编码
     */
    private String coustomerid;

    /**
     * 是否删除
     */
    private Boolean deleted;
}